This invention relates to internal communication of computer processing systems having a plurality of processing entities, and, more particularly, to establishing the compatibility of messages which are employed for communication between the processing entities and which are updatable to newer versions.
Computer processing systems may employ a plurality of processing entities, for example, as a means of providing redundancy of operation. As a specific example, a plurality of directors may provide redundant communication paths between host computer systems and redundant data storage libraries. The communication between the processing entities, such as the plurality of directors, typically is accomplished by means of specialized messages. From time to time, these messages are updated and changed in characteristics, for example, in format, as by expanding the number of bits or bytes in a portion of the message. As another example, the meaning of a message, or fields of that message, may be updated and changed. A serious change that would result in a misreading of the message by a receiver that has not been similarly updated is typically called a xe2x80x9cversionxe2x80x9d change.
Typically, a message is updated to a new version by stopping the entire computer processing system and updating the message handling code of each of the processing elements at the same time, and then bringing the processing elements into operational status, all with the updated message handling code. This insures that each of the processing elements is able to communicate with each of the other processing elements and handle the new version of the message.
However, increasing importance is given to continuous operation of computer processing systems, for example, using the phrase xe2x80x9c24xc3x977xc3x9752xe2x80x9d. Stopping the computer processor system is not a reasonable expectation in a continuously operating computer processor system.
Hence, format or other version change updates are avoided if at all possible in continuously operating computer processor systems. This leads to inefficiencies in operation, and limits the upgradability of the system.
An object of the present invention is to establish the compatibility between processing entities of a computer processing system for internal communication messages in a non-disruptive manner, so as to allow the computer processing system to update the message handling and to maintain continuous operation.
Disclosed are a computer processing system and a computer implemented method for establishing compatibility between processing entities. The computer processing system has a plurality of processing entities which employ messages for communicating with each other, the messages comprising a plurality of message types, each of which is updatable to newer versions, e.g., to new formats, at each of the processing entities by an initialization process.
Each of the processing entities may support multiple versions of the message. Compatibility for the messages is established between the processing entities by maintaining at each of the processing entities, an identification value of the maximum version of the message supported at the entity for each of the message types. Also, at each of the processing entities, an identification value is maintained of the minimum version of the message supported at the entity for each of the message types.
At the initialization process of any processing entity, the initializing processing entity requests from other processing entities of the computer processing system, the maximum version identification value and the minimum version identification value for the message types. The initializing processing entity compares the maintained maximum and minimum version identification values of the entity to any received maximum version identification value and minimum version identification value for each of the received message types. The initializing processing entity selects, as its current version to be employed for the messages of each message type, the maximum version whose identification value intersects with the maintained maximum and minimum version identification values and the maximum and the minimum version identification values of all the other processing entities.